# coding:utf-8
"""
Author: 11203
Date:  16:42
Name: logs_utils
正则工具类
"""
import re


# 验证手机号正则
def regexp_mobile(mobile: str) -> str:
    if re.match(r'^(13[0-9]|14[5-9]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$', mobile):
        return mobile
    else:
        raise ValueError('非法的手机号码: %s' % mobile)

# 验证邮箱号正则
def regexp_email(email: str) -> str:
    if re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,}(?:\.[a-zA-Z]{2,})?$', email):
        return email
    else:
        raise ValueError('非法的EMAIL邮箱号: %s' % email)

# 通用正则校验
def regexp(pattern: str) -> str:
    """
    根据自定义的正则表达式进行校验
    """
    def vaildate(val_str: str):
        if re.match(pattern, val_str):
            return val_str
        else:
            raise ValueError('验证失败，非法的参数')

    return vaildate